Locks are mechanisms used to control access to computing resources with limited capacity. Spinlocks enable requesters that are waiting for access to an occupied resource to execute other threads while they are waiting. However, spinlocks may incorporate delays and inefficiencies if the locked resource is assigned to a requester that is executing other threads and unable to immediately begin using the resource.